client.sendLocation(chatId, latitude, longitude, 'London!')
Check the Message reference to learn how to extract the coordinates from a location message
client.onMessage(message=> {
if(message.type==="location") {
//Using destructuring
const {
// The text associated with the location
loc,
//Latitude
lat,
//Longitude
lng
} = message
}
})
onLiveLocation fires a LiveLocationChangedEvent event. onLiveLocation requires a chat id to listen to so you need to detect exactly when a chat starts sharing a live location with your host account. This example detects when a live location is started and then registers a new callback to listen to updates in that live location session.
const liveLocationCallback = currentLiveLocation => {
console.log('Live location update', currentLiveLocation.id, currentLiveLocation.lat, currentLiveLocation.lng);
}
client.onMessage(message=> {
//This is how to detect when someone has started a live location with you
if(message.shareDuration){
client.onLiveLocation(message.from, liveLocationCallback)
}
})
The updates of live locations are very passive. If you require updates at regular intervals then you can force it using forceUpdateLiveLocation. It is recomended to keep an array of chat ids that have live location sessions and map through them at regular intervals
await client.forceUpdateLiveLocation(chatId);
//or force update live locations of multiple chats
await Promise.all([
'chatId1',
'chatId2'
].map(client.forceUpdateLiveLocation));